#ifndef __KEY_H
#define __KEY_H
#include "sys.h"

extern uint8_t Y1,Y2,Y3,Y4,Y5;


#define X1_GPIO_PORT 	GPIOA
#define X1_GPIO_PIN  	GPIO_Pin_1
#define X1_RCC			 	RCC_APB2Periph_GPIOA

#define X2_GPIO_PORT	GPIOA
#define X2_GPIO_PIN 	GPIO_Pin_2
#define X2_RCC 				RCC_APB2Periph_GPIOA

#define X3_GPIO_PORT	GPIOA
#define X3_GPIO_PIN  	GPIO_Pin_3 
#define X3_RCC 				RCC_APB2Periph_GPIOA

#define X4_GPIO_PORT 	GPIOA
#define X4_GPIO_PIN  	GPIO_Pin_4
#define X4_RCC 				RCC_APB2Periph_GPIOA

#define X5_GPIO_PORT 	GPIOA
#define X5_GPIO_PIN  	GPIO_Pin_5
#define X5_RCC 				RCC_APB2Periph_GPIOA

#define X6_GPIO_PORT 	GPIOA
#define X6_GPIO_PIN  	GPIO_Pin_6
#define X6_RCC 				RCC_APB2Periph_GPIOA

#define X7_GPIO_PORT 	GPIOA
#define X7_GPIO_PIN  	GPIO_Pin_7
#define X7_RCC 				RCC_APB2Periph_GPIOA
         
#define Y1_GPIO_PORT 	GPIOA
#define Y1_GPIO_PIN  	GPIO_Pin_0
#define Y1_RCC 				RCC_APB2Periph_GPIOA
         
#define Y2_GPIO_PORT 	GPIOB
#define Y2_GPIO_PIN  	GPIO_Pin_9
#define Y2_RCC 				RCC_APB2Periph_GPIOB
         
#define Y3_GPIO_PORT 	GPIOB
#define Y3_GPIO_PIN  	GPIO_Pin_8
#define Y3_RCC 				RCC_APB2Periph_GPIOB

#define Y4_GPIO_PORT 	GPIOB
#define Y4_GPIO_PIN  	GPIO_Pin_7
#define Y4_RCC 				RCC_APB2Periph_GPIOB

#define Y5_GPIO_PORT 	GPIOB
#define Y5_GPIO_PIN  	GPIO_Pin_6
#define Y5_RCC 				RCC_APB2Periph_GPIOB
	


typedef struct
{
	char X1:1;
	char X2:1;
	char X3:1;
	char X4:1;
	char X5:1;
	char X6:1;
	char X7:1;
}key_t_t;

typedef struct 
{
	key_t_t key1;
	key_t_t key2;
	key_t_t key3;
	key_t_t key4;
	key_t_t key5;
	key_t_t	key6;
}key_t;

extern key_t key_last;
extern key_t key_num;

void KEY_Init(void);
void KEY2_Init(void);
	

u8 KEY_Scan(void);

#endif


